Given an array arr
and a chunk size size
, return a chunked array. A chunked array contains the original elements in arr
, but consists of subarrays each of length size
. The length of the last subarray may be less than size
if arr.length
is not evenly divisible by size
.
You may assume the array is the output of JSON.parse
. In other words, it is valid JSON.
Please solve it without using lodash's _.chunk
function.
給定一個陣列arr
和一個區塊大小size
,傳回一個分塊陣列。
分塊陣列包含arr
中的原始元素,但由每個長度為size
的子陣列組成。
如果arr.length
不能被size
整除,則最後一個子陣列長度可能小於size
。
您可以假設該陣列是JSON.parse
的輸出。 換句話說,它是有效的 JSON。
請在不使用 lodash 的 _.chunk
函數的情況下解決它。
arr
和一個區塊大小size
,傳回一個分塊陣列。
const chunk = function(arr,size){
let chunkedAry = [];
//chunk分塊邏輯
return chunkedAry;
}
arr
中的原始元素,但由每個長度為size
的子陣列組成。
arr.length
不能被size
整除,則最後一個子陣列長度可能小於size
。let arr=[1,2,3,4,5,6,7,8];
let size=3;
chunkAry=[[1,2,3],[4,5,6],[7,8]];
索引%size===0
的時候,該值會是一個分塊陣列的首項arr
,根据索引值進行分組處理
const chunk = function(arr,size){
let chunkedAry = [];
//chunk分塊邏輯
for(let i=0;i<arr.length;i+=1){
//在chunkAry先建置[]空陣列
if(i%size===0){
chunkedAry.push([]);
}
//push arr的原始元素 以進行分組
//在i=0的時候透過if判斷已在chunkAry中新增空陣列[ ]
//因此i=0會是 chunkAry[0].push(arr[0]);
//因此i=1會是 chunkAry[0].push(arr[1]);
//因此i=2會是 chunkAry[0].push(arr[2]);
//因此i=3會是 chunkAry[1].push(arr[3]);
//因此i=4會是 chunkAry[1].push(arr[4]); ..類推
chunkedAry[chunkedAry.length - 1].push(arr[i]);
}
return chunkedAry;
}
//testcase1
let arr1 = [1,2,3,4,5];
let size1 = 1;
let chunk1 = chunk(arr1,size1);
console.log(chunk1);
//testcase2
let arr2 = [1,9,6,3,2];
let size2 = 3;
let chunk2 = chunk(arr2,size2);
console.log(chunk2);
//testcase3
let arr3 = [8,5,3,2,6];
let size3 = 6;
let chunk3 = chunk(arr3,size3);
console.log(chunk3);